home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 2000 October / Macworld CD 17.10.iso / pc / Data / Shareware / Utilities / KeyQuencer Lite 2.5.5 Installer / Developer Toolkit / Common Code / KQPPCGlue.h < prev   
Encoding:
Text File  |  1997-09-29  |  13.0 KB  |  287 lines  |  [TEXT/CWIE]

  1. // =============================================================================
  2. // KEYQUENCER GLUE ROUTINE DESCRIPTORS FOR PPC - VERSION 2.1 - MARCH 1997
  3. // By Alessandro Levi Montalcini <alm@torino.alpcom.it>
  4. // ©1994-97 Binary Software, Inc. <http://www.binarysoft.com>
  5. // This text looks best in monaco 9 font, 4 spaces per tab, no wrapping
  6. //==============================================================================
  7. // This file contains the procInfos and macros needed to call some of the KQ
  8. // glue routines from PowerPC code. You may build your own procInfos if you need
  9. // to call a glue routine that's not listed here.
  10. //==============================================================================
  11.  
  12. #pragma once
  13. #ifndef _H_kqppcglue
  14. #define _H_kqppcglue
  15.  
  16. //==============================================================================
  17.  
  18. enum {
  19.     uppKQStopSequenceProcInfo = kPascalStackBased,
  20.     
  21.     uppKQExecuteScriptProcInfo = kPascalStackBased
  22.         | RESULT_SIZE(SIZE_CODE(sizeof(short)))
  23.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle))),
  24.     
  25.     uppKQAnonymousMessageProcInfo = kPascalStackBased
  26.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ConstStr255Param)))
  27.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Boolean))),
  28.  
  29.     uppKQMacroRunningProcInfo = kPascalStackBased
  30.         | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))),
  31.     
  32.     uppKQAppleEventsBusyProcInfo = kPascalStackBased
  33.         | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))),
  34.     
  35.     uppKQCountMacrosProcInfo = kPascalStackBased
  36.         | RESULT_SIZE(SIZE_CODE(sizeof(short))),
  37.     
  38.     uppKQBuildSortedIndexProcInfo = kPascalStackBased
  39.         | RESULT_SIZE(SIZE_CODE(sizeof(Ptr))),
  40.     
  41.     uppKQGetMacroInfoProcInfo = kPascalStackBased
  42.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short)))
  43.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(unsigned char*)))
  44.         | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short*)))
  45.         | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(short*))),
  46.         
  47.     uppKQGetIndexedMacroProcInfo = kPascalStackBased
  48.         | RESULT_SIZE(SIZE_CODE(sizeof(Handle)))
  49.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short))),
  50.     
  51.     uppKQGetNamedMacroProcInfo = kPascalStackBased
  52.         | RESULT_SIZE(SIZE_CODE(sizeof(Handle)))
  53.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ConstStr31Param))),
  54.     
  55.     uppKQLastMacroErrorProcInfo = kPascalStackBased
  56.         | RESULT_SIZE(SIZE_CODE(sizeof(short))),
  57.     
  58.     uppKQGetVariableProcInfo = kPascalStackBased
  59.         | RESULT_SIZE(SIZE_CODE(sizeof(long)))
  60.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ConstStr255Param)))
  61.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(StringPtr))),
  62.     
  63.     uppKQSetVariableProcInfo = kPascalStackBased
  64.         | RESULT_SIZE(SIZE_CODE(sizeof(long)))
  65.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ConstStr255Param)))
  66.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(ConstStr255Param))),
  67.     
  68.     uppKQClearVariableProcInfo = kPascalStackBased
  69.         | RESULT_SIZE(SIZE_CODE(sizeof(long)))
  70.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ConstStr255Param))),
  71.     
  72.     uppKQCountVariablesProcInfo = kPascalStackBased
  73.         | RESULT_SIZE(SIZE_CODE(sizeof(long))),
  74.     
  75.     uppKQGetIndexedVariableProcInfo = kPascalStackBased
  76.         | RESULT_SIZE(SIZE_CODE(sizeof(long)))
  77.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long)))
  78.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(StringPtr)))
  79. };
  80.  
  81. //==============================================================================
  82.  
  83. #if GENERATINGCFM    // PowerPC or 68K Code Fragment Mgr
  84.  
  85. typedef UniversalProcPtr KQStopSequenceUPP;
  86. #define CallKQStopSequenceProc(userRoutine) \
  87.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQStopSequenceProcInfo)
  88. #define NewKQStopSequenceProc(userRoutine) \
  89.         (KQStopSequenceUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQStopSequenceProcInfo, kM68kISA)
  90.  
  91. typedef UniversalProcPtr KQExecuteScriptUPP;
  92. #define CallKQExecuteScriptProc(userRoutine, macro) \
  93.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQExecuteScriptProcInfo, (macro))
  94. #define NewKQExecuteScriptProc(userRoutine) \
  95.         (KQExecuteScriptUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQExecuteScriptProcInfo, kM68kISA)
  96.  
  97. typedef UniversalProcPtr KQAnonymousMessageUPP;
  98. #define CallKQAnonymousMessageProc(userRoutine, message, playBeep) \
  99.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQAnonymousMessageProcInfo, (message), (playBeep))
  100. #define NewKQAnonymousMessageProc(userRoutine) \
  101.         (KQAnonymousMessageUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQAnonymousMessageProcInfo, kM68kISA)
  102.  
  103. typedef UniversalProcPtr KQMacroRunningUPP;
  104. #define CallKQMacroRunningProc(userRoutine) \
  105.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQMacroRunningProcInfo)
  106. #define NewKQMacroRunningProc(userRoutine) \
  107.         (KQMacroRunningUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQMacroRunningProcInfo, kM68kISA)
  108.  
  109. typedef UniversalProcPtr KQAppleEventsBusyUPP;
  110. #define CallKQAppleEventsBusyProc(userRoutine) \
  111.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQAppleEventsBusyProcInfo)
  112. #define NewKQAppleEventsBusyProc(userRoutine) \
  113.         (KQAppleEventsBusyUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQAppleEventsBusyProcInfo, kM68kISA)
  114.  
  115. typedef UniversalProcPtr KQCountMacrosUPP;
  116. #define CallKQCountMacrosProc(userRoutine) \
  117.         (short)CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQCountMacrosProcInfo)
  118. #define NewKQCountMacrosProc(userRoutine) \
  119.         (KQCountMacrosUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQCountMacrosProcInfo, kM68kISA)
  120.  
  121. typedef UniversalProcPtr KQBuildSortedIndexUPP;
  122. #define CallKQBuildSortedIndexProc(userRoutine) \
  123.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQBuildSortedIndexProcInfo)
  124. #define NewKQBuildSortedIndexProc(userRoutine) \
  125.         (KQBuildSortedIndexUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQBuildSortedIndexProcInfo, kM68kISA)
  126.  
  127. typedef UniversalProcPtr KQGetMacroInfoUPP;
  128. #define CallKQGetMacroInfoProc(userRoutine, macroIndex, macroName, keyCode, modifiers) \
  129.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQGetMacroInfoProcInfo, (macroIndex), (macroName), (keyCode), (modifiers))
  130. #define NewKQGetMacroInfoProc(userRoutine) \
  131.         (KQGetMacroInfoUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQGetMacroInfoProcInfo, kM68kISA)
  132.  
  133. typedef UniversalProcPtr KQGetIndexedMacroUPP;
  134. #define CallKQGetIndexedMacroProc(userRoutine, macroIndex) \
  135.         (Handle)CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQGetIndexedMacroProcInfo, (macroIndex))
  136. #define NewKQGetIndexedMacroProc(userRoutine) \
  137.         (KQGetIndexedMacroUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQGetIndexedMacroProcInfo, kM68kISA)
  138.  
  139. typedef UniversalProcPtr KQGetNamedMacroUPP;
  140. #define CallKQGetNamedMacroProc(userRoutine, macroName) \
  141.         (Handle)CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQGetNamedMacroProcInfo, (macroName))
  142. #define NewKQGetNamedMacroProc(userRoutine) \
  143.         (KQGetNamedMacroUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQGetNamedMacroProcInfo, kM68kISA)
  144.  
  145. typedef UniversalProcPtr KQLastMacroErrorUPP;
  146. #define CallKQLastMacroErrorProc(userRoutine) \
  147.         (short)CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQLastMacroErrorProcInfo)
  148. #define NewKQLastMacroErrorProc(userRoutine) \
  149.         (KQLastMacroErrorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQLastMacroErrorProcInfo, kM68kISA)
  150.  
  151. typedef UniversalProcPtr KQGetVariableUPP;
  152. #define CallKQGetVariableProc(userRoutine, variableName, variableValue) \
  153.         (Handle)CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQGetVariableProcInfo, (variableName), (variableValue))
  154. #define NewKQGetVariableProc(userRoutine) \
  155.         (KQGetVariableUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQGetVariableProcInfo, kM68kISA)
  156.  
  157. typedef UniversalProcPtr KQSetVariableUPP;
  158. #define CallKQSetVariableProc(userRoutine, variableName, variableValue) \
  159.         (Handle)CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQSetVariableProcInfo, (variableName), (variableValue))
  160. #define NewKQSetVariableProc(userRoutine) \
  161.         (KQSetVariableUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQSetVariableProcInfo, kM68kISA)
  162.  
  163. typedef UniversalProcPtr KQClearVariableUPP;
  164. #define CallKQClearVariableProc(userRoutine, variableName) \
  165.         (Handle)CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQClearVariableProcInfo, (variableName))
  166. #define NewKQClearVariableProc(userRoutine) \
  167.         (KQClearVariableUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQClearVariableProcInfo, kM68kISA)
  168.  
  169. typedef UniversalProcPtr KQCountVariablesUPP;
  170. #define CallKQCountVariablesProc(userRoutine) \
  171.         (Handle)CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQCountVariablesProcInfo)
  172. #define NewKQCountVariablesProc(userRoutine) \
  173.         (KQCountVariablesUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQCountVariablesProcInfo, kM68kISA)
  174.  
  175. typedef UniversalProcPtr KQGetIndexedVariableUPP;
  176. #define CallKQGetIndexedVariableProc(userRoutine, variableIndex, variableValue) \
  177.         (Handle)CallUniversalProc((UniversalProcPtr)(userRoutine), uppKQGetIndexedVariableProcInfo, (variableIndex), (variableValue))
  178. #define NewKQGetIndexedVariableProc(userRoutine) \
  179.         (KQGetIndexedVariableUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppKQGetIndexedVariableProcInfo, kM68kISA)
  180.  
  181. #else    // 68K, no Code Fragment Mgr
  182.  
  183. typedef pascal void (*KQStopSequenceUPP)(void);
  184. #define CallKQStopSequenceProc(userRoutine) \
  185.         (*(userRoutine))()
  186. #define NewKQStopSequenceProc(userRoutine) \
  187.         (KQStopSequenceUPP)(userRoutine)
  188.  
  189. typedef pascal short (*KQExecuteScriptUPP)(Handle macro);
  190. #define CallKQExecuteScriptProc(userRoutine, macro) \
  191.         (*(userRoutine))(macro)
  192. #define NewKQExecuteScriptProc(userRoutine) \
  193.         (KQExecuteScriptUPP)(userRoutine)
  194.  
  195. typedef pascal void (*KQAnonymousMessageUPP)(ConstStr255Param message, Boolean playBeep);
  196. #define CallKQAnonymousMessageProc(userRoutine, message, playBeep) \
  197.         (*(userRoutine))((message), (playBeep))
  198. #define NewKQAnonymousMessageProc(userRoutine) \
  199.         (KQAnonymousMessageUPP)(userRoutine)
  200.  
  201. typedef pascal Boolean (*KQMacroRunningUPP)(void);
  202. #define CallKQMacroRunningProc(userRoutine) \
  203.         (*(userRoutine))()
  204. #define NewKQMacroRunningProc(userRoutine) \
  205.         (KQMacroRunningUPP)(userRoutine)
  206.  
  207. typedef pascal Boolean (*KQAppleEventsBusyUPP)(void);
  208. #define CallKQAppleEventsBusyProc(userRoutine) \
  209.         (*(userRoutine))()
  210. #define NewKQAppleEventsBusyProc(userRoutine) \
  211.         (KQAppleEventsBusyUPP)(userRoutine)
  212.  
  213. typedef pascal short (*KQCountMacrosUPP)(void);
  214. #define CallKQCountMacrosProc(userRoutine) \
  215.         (*(userRoutine))()
  216. #define NewKQCountMacrosProc(userRoutine) \
  217.         (KQCountMacrosUPP)(userRoutine)
  218.  
  219. typedef pascal Ptr (*KQBuildSortedIndexUPP)(void);
  220. #define CallKQBuildSortedIndexProc(userRoutine) \
  221.         (*(userRoutine))()
  222. #define NewKQBuildSortedIndexProc(userRoutine) \
  223.         (KQBuildSortedIndexUPP)(userRoutine)
  224.  
  225. typedef pascal void (*KQGetMacroInfoUPP)(short macroIndex, unsigned char *macroName, short *keyCode, short *modifiers);
  226. #define CallKQGetMacroInfoProc(userRoutine, macroIndex, macroName, keyCode, modifiers) \
  227.         (*(userRoutine))((macroIndex), (macroName), (keyCode), (modifiers))
  228. #define NewKQGetMacroInfoProc(userRoutine) \
  229.         (KQGetMacroInfoUPP)(userRoutine)
  230.  
  231. typedef pascal Handle (*KQGetIndexedMacroUPP)(short macroIndex);
  232. #define CallKQGetIndexedMacroProc(userRoutine, macroIndex) \
  233.         (*(userRoutine))(macroIndex)
  234. #define NewKQGetIndexedMacroProc(userRoutine) \
  235.         (KQGetIndexedMacroUPP)(userRoutine)
  236.  
  237. typedef pascal Handle (*KQGetNamedMacroUPP)(ConstStr31Param macroName);
  238. #define CallKQGetNamedMacroProc(userRoutine, macroName) \
  239.         (*(userRoutine))(macroName)
  240. #define NewKQGetNamedMacroProc(userRoutine) \
  241.         (KQGetNamedMacroUPP)(userRoutine)
  242.  
  243. typedef pascal short (*KQLastMacroErrorUPP)(void);
  244. #define CallKQLastMacroErrorProc(userRoutine) \
  245.         (*(userRoutine))()
  246. #define NewKQLastMacroErrorProc(userRoutine) \
  247.         (KQLastMacroErrorUPP)(userRoutine)
  248.  
  249. typedef pascal long (*KQGetVariableUPP)(ConstStr255Param variableName, StringPtr variableValue);
  250. #define CallKQGetVariableProc(userRoutine, variableName, variableValue) \
  251.         (*(userRoutine))((variableName), (variableValue))
  252. #define NewKQGetVariableProc(userRoutine) \
  253.         (KQGetVariableUPP)(userRoutine)
  254.  
  255. typedef pascal long (*KQSetVariableUPP)(ConstStr255Param variableName, ConstStr255Param variableValue);
  256. #define CallKQSetVariableProc(userRoutine, variableName, variableValue) \
  257.         (*(userRoutine))((variableName), (variableValue))
  258. #define NewKQSetVariableProc(userRoutine) \
  259.         (KQSetVariableUPP)(userRoutine)
  260.  
  261. typedef pascal long (*KQClearVariableUPP)(ConstStr255Param variableName);
  262. #define CallKQClearVariableProc(userRoutine, variableName) \
  263.         (*(userRoutine))(variableName)
  264. #define NewKQClearVariableProc(userRoutine) \
  265.         (KQClearVariableUPP)(userRoutine)
  266.  
  267. typedef pascal long (*KQCountVariablesUPP)(void);
  268. #define CallKQCountVariablesProc(userRoutine) \
  269.         (*(userRoutine))()
  270. #define NewKQCountVariablesProc(userRoutine) \
  271.         (KQCountVariablesUPP)(userRoutine)
  272.  
  273. typedef pascal long (*KQGetIndexedVariableUPP)(long variableIndex, StringPtr variableValue);
  274. #define CallKQGetIndexedVariableProc(userRoutine, variableIndex, variableValue) \
  275.         (*(userRoutine))((variableIndex), (variableValue))
  276. #define NewKQGetIndexedVariableProc(userRoutine) \
  277.         (KQGetIndexedVariableUPP)(userRoutine)
  278.  
  279.  
  280. #endif    // GENERATINGCFM
  281.  
  282. //==============================================================================
  283.  
  284. #endif    // _H_kqppcglue
  285.  
  286. //==============================================================================
  287.